﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MSAcademic.v2.Infrastructure.SubSection;
using MSAcademic.v2.Infrastructure.Tag;
using MSAcademic.v2.Infrastructure.User;

namespace MSAcademic.v2.Infrastructure.Article
{
    public interface IArticleQueries
    {
        IArticle GetArticle(int articleId);
        IEnumerable<IArticle> GetLatestArticlesPaged(int page, bool showHidden, IUser signedInUser);
        int GetNumberOfPages(bool countHidden);
        IEnumerable<ITag> GetTagsForArticle(int id);
        IEnumerable<ISubSection> GetSubSectionsForArticle(int articleId,bool showHidden);
        IEnumerable<IArticle> GetArticlesForSubSection(int subSectionId);
        IEnumerable<IArticle> GetLatestArticles(int count);
        IEnumerable<IArticle> GetArticlesForSubSectionsWithTagFilter(List<int> tagsToSearchFor, int subsectionId,bool showHidden);
        IEnumerable<IArticle> GetArticlesForContentSection(int contentSectionId);
        IEnumerable<IArticle> GetArticlesWrittenByAuthor(int authorId, bool showHidden);
        IEnumerable<IArticle> GetArticlesForSubSectionName(string subSectionName, bool showHidden);
    }
}
